Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.11.2011, 02:18
Новичок на форуме
Отправить личное сообщение для joomba Посмотреть профиль Найти все сообщения от joomba
 
Регистрация: 06.11.2011
Сообщений: 7

Глобальный AJAX-объект
Здравствуйте. Вопрос состоит в том, стоит ли делать доступным объект, который создает XMLHttpRequest? Т.е. в моем проекте было бы удобно засунуть его в прототип базового класса, но я опасаюсь, что продвинутые пользователи будут через него слать на сервер всякие ненужные запросы.

И если не стоит, то возможно ли сделать прототип недоступным? В чужих исходниках встречал:
if (typeof Namespace == 'undefined' || !Namespace){
    var Namespace={};
}
(function(){
Namespace.Class = function(){
    // всякие конструкторские дела
};
Namespace.Class.prototype = {
    xhr:new XMLHttpRequest(),
    // ещё какие-нибудь члены класса
};
})();

Но помоему это не очень работает.
Ответить с цитированием
  #2 (permalink)  
Старый 06.11.2011, 02:29
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от joomba
но я опасаюсь, что продвинутые пользователи будут через него слать на сервер всякие ненужные запросы.
лолшто?
Ответить с цитированием
  #3 (permalink)  
Старый 06.11.2011, 03:01
Новичок на форуме
Отправить личное сообщение для joomba Посмотреть профиль Найти все сообщения от joomba
 
Регистрация: 06.11.2011
Сообщений: 7

Сообщение от Gvozd Посмотреть сообщение
лолшто?
Тобишь делать так:
Namespace.Class.prototype.xhr.open("POST", "gate.php", true);
Namespace.Class.prototype.xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
Namespace.Class.prototype.xhr.send("a=1&b=2");
Ответить с цитированием
  #4 (permalink)  
Старый 06.11.2011, 03:07
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от joomba
Тобишь делать так:
ну и? пускай шлют
Ответить с цитированием
  #5 (permalink)  
Старый 06.11.2011, 03:15
Новичок на форуме
Отправить личное сообщение для joomba Посмотреть профиль Найти все сообщения от joomba
 
Регистрация: 06.11.2011
Сообщений: 7

Сообщение от Gvozd Посмотреть сообщение
ну и? пускай шлют
Но дело в том, что мне надо чтобы всё происходило через UI.
Ответить с цитированием
  #6 (permalink)  
Старый 06.11.2011, 03:42
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от joomba
Но дело в том, что мне надо чтобы всё происходило через UI.
зачем?
Ответить с цитированием
  #7 (permalink)  
Старый 06.11.2011, 06:21
Аватар для float
Профессор
Отправить личное сообщение для float Посмотреть профиль Найти все сообщения от float
 
Регистрация: 01.07.2010
Сообщений: 387

Цитата:
Тобишь делать так:
У продвинутых пользователей всегда будет возможность сделать запрос, хотите вы этого или нет.
Ответить с цитированием
  #8 (permalink)  
Старый 06.11.2011, 08:55
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от joomba
Тобишь делать так:
Namespace.Class.prototype.xhr.open("POST", "gate.php", true);
Namespace.Class.prototype.xhr.setRequestHeader("Co ntent-Type", "application/x-www-form-urlencoded");
Namespace.Class.prototype.xhr.send("a=1&b=2");
Сделать var xhr = new XMLHttpRequest() в консоли, вы думаете, они не смогут?
Ответить с цитированием
  #9 (permalink)  
Старый 06.11.2011, 13:25
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

joomba,
Расскажите чуточку подробнее о своем проекте, и в чем его специфика, что вы так опасаетесь левых запросов от пользователей.

Для любого проекта, с точки зрения здравого смысла и безопасности, посылка самостоятельного AJAX-запроса не должна давать пользователю сделать что-то, что он не может с помощью UI.
То есть, если например в UI контролируются его права, и выводятся толь ко общие сообщения(/chat.php) и его приват (/chat.php?id=123), то права пользователя на чтение конкретного привата должны задаватся не только в UI, но и со стороны сервера.

Ну, и также, если UI хороший, то у пользователя не должно возникать искушения сделать что-то прямым запросом.
То есть если какое-то частое действие запрятано в вашем UI, в тридевятой вкладке, и добратся туда можно только через 17 кликов, то это плохой интерфейс, и пользователь вполне может захотеть его не использовать.

В общем, если у вас удобный UI, и безопасные проверки на сервере, то вам незачем беспокоится, что кому-то захочется так сделать. а тем, кому захочется, все арвно они никак не навредят
Ответить с цитированием
  #10 (permalink)  
Старый 06.11.2011, 16:09
Новичок на форуме
Отправить личное сообщение для joomba Посмотреть профиль Найти все сообщения от joomba
 
Регистрация: 06.11.2011
Сообщений: 7

Сообщение от Kolyaj Посмотреть сообщение
Сделать var xhr = new XMLHttpRequest() в консоли, вы думаете, они не смогут?
Смогут, но обработчик
Namespace.Class.prototype.xhr.onreadystatechange

будет другой.

Сообщение от Gvozd Посмотреть сообщение
Расскажите чуточку подробнее о своем проекте...
Это социальная игра. Я боюсь, что посмотрев в коде какие делаются запросы они сделают бота.

Добавлю, что она загружается через <iframe>, при этом при загрузке игры осуществляется GET-запрос по адресу игры, в котором присутствуют такие параметры как id пользователя.

Последний раз редактировалось joomba, 06.11.2011 в 16:38.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передать ссылку на объект а не объект возникновения события Blazze Events/DOM/Window 0 11.10.2011 00:45
Ajax таблица gofkane Работа 1 26.09.2011 18:26
Ajax таблица gofkane Работа 0 25.09.2011 11:53
Ajax разбор метода mycoding jQuery 14 21.05.2010 10:57
Область видимости переменных на примере ajax human Общие вопросы Javascript 4 19.02.2009 23:12